package com.icinfo.cloud.provider.punish.execute.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.icinfo.cloud.provider.punish.common.documentoperate.dto.DocumentRelateAttachmentVo;
import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CasePartyRelateDocInfoVo;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 描述：案件环节关联文书视图对象
 *
 * @author xiangyuyu
 * @date 2022/2/22 20:49
 */
@Data
@NoArgsConstructor
public class ExecuteStageLinkRelateDocumentVo {
    //TODO:添加是否允许不同操作的字段判断
    /**
     * 文书id
     */
    private String documentId;
    /**
     * 文书url
     */
    private String documentUrl;
    /**
     * 文书种类编号
     */
    private String documentKindCode;
    /**
     * 文书种类名称
     */
    private String documentKindName;
    /**
     * 文书标题
     */
    private String documentTitle;
    /**
     * 文书类型id
     */
    private String documentTypeId;

    /**
     * 文书类型名称(审批表、法律文书)-DocumentTypeEnum
     */
    private String documentTypeName;

    /**
     * 是否需要送达回执  0:不需要1:需要
     */
    private String isReceipt;

    /**
     * 是否需要电子送达 0:不需要 1:需要
     */
    private String isElecSend;

    /**
     * 是否需要签字确认， 0 不需要；1 需要
     */
    private String isConfirm;

    /**
     * 文书目录编码
     */
    private String documentCatalogCode;

    /**
     * 文书目录名称
     */
    private String documentCatalogName;

    /**
     * 创建人
     */
    private String createUserName;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime documentCreateTime;
    /**
     * 审核状态
     */
    private String documentApprovalStatus;
    /**
     * 审核状态名称
     */
    private String documentApprovalStatusName;
    /**
     * 送达状态
     */
    private String documentSentStatus;
    /**
     * 送达状态名称
     */
    private String documentSentStatusName;
    /**
     * 签字状态
     */
    private String documentSignstampedStatus;
    /**
     * 签字状态名称
     */
    private String documentSignstampedStatusName;
    /**
     * 审批完成时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime approvalFinishTime;
    /**
     * 送达时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime sentTime;

    /**
     * 盖章后文书地址
     */
    private String documentUrlAfterSeal;

    /**
     * 盖章后文书地址
     */
    private String documentUrlAfterSign;

    /**
     * 文书文号
     */
    private String documentNumber;

    /**
     * 签字时间（当事人）
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private LocalDateTime signTime;
    /**
     * 文书关联附件列表
     */
    private List<DocumentRelateAttachmentVo> documentRelateAttachmentList;
    /**
     * 文书关联当事人列表
     */
    private List<CasePartyRelateDocInfoVo> docRelatePartiesList;

    /**
     * 是否有配对文书 0-否 1-是
     */
    private String isMatchDocument;

    /**
     * 配对文书目录编码
     */
    private String matchDocumentCatalogCode;

    /**
     * 文书状态编码 1:正常 2:草稿 3:撤回
     */
    private String documentRecordStatus;

    /**
     * 文书状态名称
     */
    private String documentRecordStatusName;

    /**
     * 关联对象 1:案件 2:当事人
     */
    private String documentLinkObjectType;

    /**
     * 当事人名称
     */
    //private String partyName;

    /**
     * 当事人id
     */
    private String partyId;

    /**
     * 是否失效 0:否 1:是
     */
    private String isInvalid;
    /**
     * 案件文书类别标识（用于特殊文书的处理）
     * 1案件变更操作文书 2 强制执行情况记录文书 3 线下上传文书
     */
    private String caseDocumentTypeFlag;

    /**
     * 是否展示公示编码 0:不展示公示;1:展示公示 (处罚决定书记录使用)
     */
    private String isShowPublicity;
    /**
     * 是否展示公示 不展示公示/展示公示(处罚决定书记录使用)
     */
    private String isShowPublicityName;

    /**
     * 相关联的审批表法律文书集合
     */
    private List<String> allRelationDocCatalogCodeList;

    /**
     * 案件阶段code
     */
    private String caseStageCode;
    /**
     * 是否需要审批；1 是 0 否
     */
    private String isNeedApproval;
    /**
     * 案源中心文书只展示详情；1 是 0 否
     */
    private String isOnlyDetail;
    /**
     * executeId
     */
    private String executeId;
    /**
     * 文书关联附件数
     */
    private Integer documentRelateAttachmentCount;
    /**
     *
     * 是否多人
     */
    private String isMultiple;
    /**
     *
     * 法院编码
     */
    private String courtCode;


}
